/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:
 * Date: 2024-12-12
 * Time: 19:37
 */
import java.util.Scanner;
import java.util.InputMismatchException;

public class TestHanoi {
    public static void main(String[] args) {
        System.out.println("一共有多少个盘子：");
        Scanner sc = new Scanner(System.in);
        try {
            int n = sc.nextInt();
            if (n <= 0) {
                throw new IllegalArgumentException("圆盘数量必须是正整数。");
            }
            hanoi(n, 'A', 'B', 'C');
        } catch (InputMismatchException e) {
            System.out.println("输入错误：请输入一个有效的整数。");
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        } finally {
            sc.close();
        }
    }

    public static void hanoi(int n, char begin, char mid, char end) {
        //只有一个盘子
        if (n == 1) {
            System.out.println("把第1个盘子从" + begin + "移到" + end);
            //无论有多少个盘子，都认为只有两个，上面的所有盘子和最下面的一个盘子
        } else {
            //移动上面所有的盘子到中间位置
            hanoi(n - 1, begin, end, mid);
            //移动下面的盘子
            System.out.println("把第" + n + "个盘子从" + begin + "移到" + end);
            //把上面的所有盘子从中间位置移到目标位置
            hanoi(n - 1, mid, begin, end);
        }

    }
}